#!/bin/bash -e
# shellcheck source=meta-facebook/meta-minerva/recipes-minerva/plat-tool/files/minerva-common-functions
source /usr/libexec/minerva-common-functions

# set initial value for GPIO output pins
set_gpio PWREN_MTIA_BLADE0_EN_N 0
set_gpio PWREN_MTIA_BLADE1_EN_N 0
set_gpio PWREN_MTIA_BLADE2_EN_N 0
set_gpio PWREN_MTIA_BLADE3_EN_N 0
set_gpio PWREN_MTIA_BLADE4_EN_N 0
set_gpio PWREN_MTIA_BLADE5_EN_N 0
set_gpio PWREN_MTIA_BLADE6_EN_N 0
set_gpio PWREN_MTIA_BLADE7_EN_N 0
set_gpio PWREN_MTIA_BLADE8_EN_N 0
set_gpio PWREN_MTIA_BLADE9_EN_N 0
set_gpio PWREN_MTIA_BLADE10_EN_N 0
set_gpio PWREN_MTIA_BLADE11_EN_N 0
set_gpio PWREN_MTIA_BLADE12_EN_N 0
set_gpio PWREN_MTIA_BLADE13_EN_N 0
set_gpio PWREN_MTIA_BLADE14_EN_N 0
set_gpio PWREN_MTIA_BLADE15_EN_N 0

set_gpio PWREN_NW_BLADE0_EN_N 0
set_gpio PWREN_NW_BLADE1_EN_N 0
set_gpio PWREN_NW_BLADE2_EN_N 0
set_gpio PWREN_NW_BLADE3_EN_N 0
set_gpio PWREN_NW_BLADE4_EN_N 0
set_gpio PWREN_NW_BLADE5_EN_N 0

set_gpio PWREN_MTIA_BLADE0_HSC_EN_N 0
set_gpio PWREN_MTIA_BLADE1_HSC_EN_N 0
set_gpio PWREN_MTIA_BLADE2_HSC_EN_N 0
set_gpio PWREN_MTIA_BLADE3_HSC_EN_N 0
set_gpio PWREN_MTIA_BLADE4_HSC_EN_N 0
set_gpio PWREN_MTIA_BLADE5_HSC_EN_N 0
set_gpio PWREN_MTIA_BLADE6_HSC_EN_N 0
set_gpio PWREN_MTIA_BLADE7_HSC_EN_N 0
set_gpio PWREN_MTIA_BLADE8_HSC_EN_N 0
set_gpio PWREN_MTIA_BLADE9_HSC_EN_N 0
set_gpio PWREN_MTIA_BLADE10_HSC_EN_N 0
set_gpio PWREN_MTIA_BLADE11_HSC_EN_N 0
set_gpio PWREN_MTIA_BLADE12_HSC_EN_N 0
set_gpio PWREN_MTIA_BLADE13_HSC_EN_N 0
set_gpio PWREN_MTIA_BLADE14_HSC_EN_N 0
set_gpio PWREN_MTIA_BLADE15_HSC_EN_N 0

set_gpio PWREN_NW_BLADE0_HSC_EN_N 0
set_gpio PWREN_NW_BLADE1_HSC_EN_N 0
set_gpio PWREN_NW_BLADE2_HSC_EN_N 0
set_gpio PWREN_NW_BLADE3_HSC_EN_N 0
set_gpio PWREN_NW_BLADE4_HSC_EN_N 0
set_gpio PWREN_NW_BLADE5_HSC_EN_N 0

set_gpio PWREN_FCB_TOP_L_EN_N 0
set_gpio PWREN_FCB_TOP_R_EN_N 0
set_gpio PWREN_FCB_MIDDLE_L_EN_N 0
set_gpio PWREN_FCB_MIDDLE_R_EN_N 0
set_gpio PWREN_FCB_BOTTOM_L_EN_N 0
set_gpio PWREN_FCB_BOTTOM_R_EN_N 0

set_gpio FM_CMM_AC_CYCLE_N 1

# if MGMT_SFP_PRSNT_N = 0 -> MGMT_SFP_TX_DIS = 0
# if MGMT_SFP_PRSNT_N = 1 -> MGMT_SFP_TX_DIS = 1
MGMT_SFP_PRSNT_N_VALUE=$(get_gpio MGMT_SFP_PRSNT_N)
if [ "$MGMT_SFP_PRSNT_N_VALUE" = "0" ]; then
    set_gpio MGMT_SFP_TX_DIS 0
else
    set_gpio MGMT_SFP_TX_DIS 1
fi

set_gpio RST_I2CRST_MTIA_BLADE0_1_N 1
set_gpio RST_I2CRST_MTIA_BLADE2_3_N 1
set_gpio RST_I2CRST_MTIA_BLADE4_5_N 1
set_gpio RST_I2CRST_MTIA_BLADE6_7_N 1
set_gpio RST_I2CRST_MTIA_BLADE8_9_N 1
set_gpio RST_I2CRST_MTIA_BLADE10_11_N 1
set_gpio RST_I2CRST_MTIA_BLADE12_13_N 1
set_gpio RST_I2CRST_MTIA_BLADE14_15_N 1
set_gpio RST_I2CRST_NW_BLADE0_1_2_N 1
set_gpio RST_I2CRST_NW_BLADE3_4_5_N 1

set_gpio RST_I2CRST_FCB_N 1
set_gpio RST_I2CRST_FCB_B_L_N 1
set_gpio RST_I2CRST_FCB_B_R_N 1
set_gpio RST_I2CRST_FCB_M_L_N 1
set_gpio RST_I2CRST_FCB_M_R_N 1
set_gpio RST_I2CRST_FCB_T_L_N 1
set_gpio RST_I2CRST_FCB_T_R_N 1

set_gpio wFM_88E6393X_BIN_UPDATE_EN_N 1
set_gpio WATER_VALVE_CLOSED_N 0
set_gpio BMC_READY 1
exit 0
